# Author：wgw

'''
购物车程序项目：
　　要求：1、运行程序后，让用户输入支付宝余额，然后打印我们的商品列表给用户。
　　   　2、让用户输入商品编号进行商品的购买。
　　  　 3、用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。
　　　　 4、用户可以随时退出购买，退出时打印用户已购买的商品和支付宝余额。
'''

# 首先将商品列表列出
product_list = [ ("华为 mate40",9800),
                ("iphone12",8800),
                ("自行车",300),
                ("python_book Xu",80),
                ("奶茶",15),
                ("炸鸡",60)]
shopping_car=[]  #创建一个空购物车列表
balance =input('请输入支付宝余额')
while True:#创建循环，可让消费者多次购买
    balance=int(balance)
    for item in product_list:
        print(product_list.index(item),item)
    # 开始挑选商品
    choice=input('请输入产品编号')
    if choice.isdigit():# 判断字符串类型 （是否是数字）
        choice=int(choice)#转化为数字的类型
        # 先判断选择的商品是否在购物列表中
        if choice >=0 and choice<len(product_list):#len函数：表示返回对象的长度或个数
            # 当余额足够的情况：
            if balance>=product_list[choice][1]:
                balance=balance-product_list[choice][1]
                shopping_car.append(product_list[choice][0])
                print("你把商品%s添加到购物车支付宝余额是%s"%(product_list[choice][0],balance))
                print(shopping_car)
                print('默认继续购买,若不想购买请按q键退出')
            # 当余额不足时：
            else:
                print('你的余额不足,请重新选择商品')
                print('或者请按Q退出')
        else:
            print('商品里没有这个列表，请重新选择一个商品')
    # 当顾客选择退出：
    elif choice =='q':
        print('-----购物车清单----')
        for item in shopping_car:#嵌入for循环且使用item方法
            print(item)
        print('你的支付宝余额为%s元'%balance)#运用占位符方法
        print('您已经购买{}'.format(shopping_car))
        break
    else:
        print("您输入的信息有误！")